Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysłanie POSTA bez formularza
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Poczytałem sobie to.
Piszę w pliku try.php:
  1. <?php
  2. function doPost($uri,$postdata,$host){
  3.  $da = fsockopen($host, 80, $errno, $errstr);
  4.  if (!$da) {
  5.  echo "$errstr ($errno)<br/>n";
  6.  echo $da;
  7.  }
  8.  else {
  9.  $salida ="POST $uri HTTP/1.1rn";
  10.  $salida.="Host: $hostrn";
  11.  $salida.="User-Agent: php Scriptrn";
  12.  $salida.="Content-Type: application/x-www-form-urlencodedrn";
  13.  $salida.="Content-Length: ".strlen($postdata)."rn";
  14.  $salida.="Connection: closernrn";
  15.  $salida.=$postdata;
  16.  fwrite($da, $salida);
  17.  while (!feof($da))
  18.  $response.=fgets($da, 128);
  19.  $response=split("rnrn",$response);
  20.  $header=$response[0];
  21.  $responsecontent=$response[1];
  22.  if(!(strpos($header,"Transfer-Encoding: chunked")===false)){
  23.  $aux=split("rn",$responsecontent);
  24.  for($i=0;$i<count($aux);$i++)
  25.  if($i==|| ($i%2==0))
  26.  $aux[$i]="";
  27.  $responsecontent=implode("",$aux);
  28.  }//if
  29.  return chop($responsecontent);
  30.  }//else
  31.  }//function-doPost
  32.  doPost('catch.php','dana1=tomek','localhost')
  33. ?>

oraz plik catch.php:
  1. <?
  2. print_r($_POST);
  3. ?>

I nie działa, nie wyświetla żadnych danych :/
Co robię źle?
Chciałbym wysłać do serwera zewnętrznego dane postem....

Dzięki
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
$salida.="User-Agent: php Script\r\n";

Może przez to?
Go to the top of the page
+Quote Post
batman
post
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




A nie możesz użyć cURL ?
Go to the top of the page
+Quote Post
NetJaro
post
Post #4





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Do takich zabaw polecam serdecznie cURL. Wspaniałe i proste narzędzie ;-)
I sądze, że szybciej byś dostał odpowiedź na problem związany z nim niż fsockopen.. tak mi się wydaje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
TomASS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
Może przez to?

Niestety nie.

Cytat
A nie możesz użyć cURL ?

Cytat
Do takich zabaw polecam serdecznie cURL.

Ale po co zaraz do tak prostej rzeczy (tak mi się wydaje) zaraz wyciągać jakieś potężne biblioteki?

=================================================================
Rozwiązanie:

  1. <?php
  2. $url = 'localhost';
  3.  $fp = fsockopen($url, 80);
  4.  $out = "POST /BC/catch.php HTTP/1.0rn";
  5.  $out .= "Host: $urlrn";
  6.  $out .= "Content-Type: application/x-www-form-urlencodedrn";
  7.  $out .= "Content-Length:8rn";
  8.  $out .= "rn";
  9.  $out .= "system=3rn";
  10.  $out .= "Connection: Closernrn";//
  11.  fwrite($fp, $out);
  12.  while (!feof($fp))
  13.  {
  14. $end .= fgets($fp, 128);
  15.  }
  16.  fclose($fp);
  17.  echo $end;
  18. ?>


Nie trzeba było CURLA (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ciekawi mnie tylko, czy ten sposób ma jakieś ograniczenia ? Tzn czy z zewnętrznym serwerem uda mi się połączyć ?

Ten post edytował TomASS 14.10.2006, 09:35:24
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX. Też możesz wysłać posta do jakiegoś skryptu bez potrzeby submitowania formularza.
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX.

TomASS chce rozwiązanie czysto w php, bez angażowania JS.
Go to the top of the page
+Quote Post
TomASS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cytat
Cytat
Jeśli nie chcesz używać cURL, to obok fsockopen jest jeszcze AJAX.


TomASS chce rozwiązanie czysto w php, bez angażowania JS.

Dokładnie!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:56